package com.siyuanren.gcocp.service;

import com.siyuanren.gcocp.dto.ChapterDTO;
import com.siyuanren.gcocp.entity.WxUserChapter;
import com.siyuanren.gcocp.vo.*;

import java.util.List;

/**
 * Created by   anxing
 * Project_name gcocp-parent
 * Path         com.siyuanren.gcocp.service
 * Date         2018/4/18
 * Time         13:36
 * Description 章节service
 */
public interface ChapterService {
    /**
     * 返回章节列表
     * @param queryChapterVO
     * @return
     *
     */
    public List<ChapterDTO> getChapterList(QueryChapterVO queryChapterVO) throws Exception;

    /**
     * 返回课程打卡列表
     * @param queryChapterVO
     * @return
     */
    public List<Integer> getCourseClockList(QueryChapterVO queryChapterVO) throws Exception;


    /**
     * 课程打卡
     * @param clockChapterVO
     */
    public void addCourseClock(ClockChapterVO clockChapterVO) throws Exception;

    /**
     * 上报章节学习进度
     * @param userChapter
     */
    void submitChapterCourse(WxUserChapter userChapter) throws Exception;

    /**
     * 获取学习进度
     * @param userId
     * @param chapterId
     */
    Integer getStudyProgress(Integer userId, Integer chapterId);

    /**
     * 增加播放计数
     * @param addPlayCountVO
     */
    void addPlayCount(AddPlayCountVO addPlayCountVO);

    /**
     * 返回章节详情
     * @param chapterDetailVO
     * @return
     * @throws Exception
     */
    ChapterDTO getChapterDetail(QueryChapterDetailVO chapterDetailVO) throws Exception;

    /**
     * 提交视频播放进度
     * @param vo
     */
    void submitVideoProgress(VideoProgoressVO vo);
}
